System administrators who manage the placement of computing workloads have many resource environment choices to consider. In some cases, selected workloads can be assigned to a dedicated set of computing, storage, networking, and/or other resources (e.g., “on-prem” or “on-premises” resources). Servers with particularly-configured computing resources (e.g., multi-core processors) and with a certain attached storage capacity might be implemented to run the selected workloads. On-premises resources are sometimes configured in a computing system using virtualization software to facilitate flexibility in the use of the computing resources. Such computing systems, in particular, virtualized computing and storage systems implement various types of virtualized entities (VEs) to run the workloads that use or consume the computing resources of the systems.
The VEs deployed in many virtualization systems might be virtual machines (VMs) and/or executable containers. With as many as several thousand VEs per cluster, the high storage I/O (input/output or IO) demand of the VEs has precipitated an increase in deployment of distributed storage systems to replace centralized storage configurations. Distributed storage systems coordinate certain components in the system to efficiently use a particular set of data storage resources or facilities to service the workloads. Distributed resource environments natively combine distributed computing and/or distributed storage capabilities and/or networking capabilities, and/or other distributed capabilities that can be linearly scaled by adding nodes.
Cloud-based resource environments are also available to today's system administrators. In particular, public cloud resources can be selected from a variety of cloud providers to satisfy temporary or long term workload requirements. For example, a cloud resource provider might offer a service model that provides infrastructure as a service (IaaS), which service model or infrastructure can be used by various sets of VEs when performing certain workloads. The characteristics of both the on-premises resources and the public cloud resources can change dynamically. For example, the availability, configuration, cost, and/or other characteristics of such resources can vary quickly and broadly, both within a given resource environment and across these heterogeneous environments.
Unfortunately, legacy techniques for scheduling workloads across resource environments can present limitations at least as pertaining to efficient distribution of the workloads into the environments pertaining to on-premises distributed resource environments and public cloud resource environments. Some legacy techniques merely facilitate workload scheduling within a particular resource environment, and some legacy techniques require a system administrator to specify where and when and how a particular workload is to be scheduled. Such legacy techniques fail to consider the functionally-changing and temporally-changing capabilities of different resources and/or variations between different resource environments when determining workload scheduling plans. Workload scheduling using the legacy techniques are deficient in satisfying certain objectives, at least as compared to workload scheduling that accounts for variations between different resources and/or variations between different resource environments. For example, scheduling a temporary workload peak for a public cloud resource environment may be more effective in meeting certain business objectives such as cost reduction or on-time delivery as compared to scheduling the workload peak to on-premises resources that would need to be purchased and installed.
Furthermore, legacy techniques for scheduling workloads across resource environments present limitations at least as pertaining to rebalancing of workloads across highly dynamic heterogeneous resource environments. Some legacy techniques merely facilitate a one-time allocation of workloads to a respective resource environment. For example, 80% of the workloads as measured by one or more resource usage metrics might be allocated to the on-premises resource environment and 20% of the workloads might be allocated to the public cloud resource environment. Such legacy techniques fail to account for the highly dynamic characteristics of such resource environments and/or characteristics of workloads running within those resource environments. Failure to account for such changes in environments or workloads can in turn reduce the efficacy of any earlier determined workload allocations. Limitations of legacy techniques are quite apparent when either the “on-prem” distributed resource environment or the public cloud resource environments undergo frequent environmental and/or operational changes.
What is needed is a technical solution to improve over legacy techniques and/or over other considered approaches. Some of the approaches described in this background section are approaches that could be pursued, but not necessarily approaches that have been previously conceived or pursued. Therefore, unless otherwise indicated, it should not be assumed that any of the approaches described in this section qualify as prior art merely by virtue of their inclusion in this section.